This document briefly describes important changes in version 1.1.1 of Checksum for the Macintosh. Please refer to the Checksum User’s Manual for complete information on basic application operation and licensing information.
RSA MD5 checksum calculation
Checksum performance display
Complete file pathname display
Calculate data and resource fork checksums separately
Optionally display byte and block counts
Ability to calculate checksums for files already open in other applications
Minor bug fixes
The RSA MD5 checksum option is a complete implementation of the RSA Data Security, Inc. MD5 Message-Digest Algorithm. A message digest algorithm is a cryptographic checksum that ensures even a small change in the input file results in a large change in the calculated checksum. MD5 generates a 128-bit (16 byte) “signature” for any given file. MD5 is near the state of the art for cryptographic checksum algorithms. It is conjectured that it is computationally infeasible to produce two messages having the same message digest, or to produce any message having a given prespecified target message digest. A complete technical description of the MD5 algorithm can be found in Internet RFC 1321.
Checksum version 1.1 adds several new display options. These options can be set in the Preferences… menu choice from the Options menu.
The Preferences… menu option provides a dialog which lets you choose specific options depending on your needs. The default settings default to match Checksum version 1.0 performance.
Show full pathnames will provide the complete path description for a file, instead of just the base filename.
Report file forks separately will calculate checksums for each file fork independently and report two separate values. Note that if ‘TEXT’ special has been selected, both file forks will be reported, but only the data fork will have its end-of-line character optionally translated. The data fork is calculated before the resource fork.
Show file size in blocks will optionally report the block count as in version 1.0. Similarly, Show file size in bytes will optionally report the number of bytes in the file. If Report file forks separately is selected, separate block and/or byte counts will be reported for each file fork.
Report throughput will report the approximate performance of the checksum algorithm for your system. Many factors will affect checksum throughput: processor speed, disk I/O performance, operating system and extensions, and disk cache settings. For best results, very large files will give the most accurate measurements of actual performance, but results should be averaged over a large number of files to get a meaningful measure for comparison purposes. The value reported has little worth on its own.
Several minor bugs were fixed, mostly dealing with out of memory conditions.
It is now possible to calculate checksums for files already open in other calculations.
Performance is slightly better than in version 1.0
More standard keyboard functions are supported than before.
The Monaco font is now used for results display instead of Geneva. This improves readability and alignment of results in the status window.
Version 1.1.1 released in June 1994. Two minor bugs fixed: version 1.0 preferences are now read correctly, and the application now quits properly when settigs have been changed.
To verify you have a good copy of the program, do Get Info from the Finder’s File menu. It should look like this:
In its default configuration, Checksum version 1.1.1 will calculate a checksum for itself which should be:
54125 46 blocks, 46508 bytes “Checksum”
Checksum preferences are stored in a file named “Checksum Preferences.” This file is stored in the System Folder under System 6, and in the Preferences folder in the System Folder under System 7. To reset all options to the default state, merely drag the Checksum Preferences file to the Trash. A new version will be created each time any options or preferences are changed.
Many people has asked about the CRC calculation algorithms used in Checksum. For any CRC polynomial, four values define the calculation: the CRC polynomial coefficients, the initial value, the byte ordering, and number of bits in the result. The following table shows the information that describes the algorithms in Checksum:
Coefficients is the polynomial coefficients represented as a bit-map (in hexadecimal). For example, 0xA001 is the polynomial
(note the “+1” is always implied).
Note that the POSIX.2 algorithm differs slightly from the CCITT algorithm, even though the polynomials are the same.
Most of the changes in this version were based on requests from registered users. Please send suggestions for improvements you would like to see.
There were many changes made “under the hood” in this version which are not visible on the surface. These changes were made to support new functionality in the future. The main new capability planned is the ability to store checksum results and automatically compare them against the same files in the future.
This software has been thoroughly tested. If you encounter any problems, or have any comments or suggestions, please contact me. For correspondence by U.S. mail, use:
Geoff Walsh
P. O. Box 10
Malibu, CA 90265-0010
For electronic correspondence through the Internet, use: gpw@cerf.net